package service;

import mapper.UserMapper;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import pojo.User;
import utils.SqlSessionFactoryUtils;

public class UserService {
    //设置factory属性
    SqlSessionFactory factory = SqlSessionFactoryUtils.getSqlSessionFactory();

   public User login(String username,String password){
       SqlSession sqlSession = factory.openSession();
       UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
       User user = userMapper.selectByUsername(username);
       if (user!=null){
           //继续比对密码
           if(password.equals(user.getPassword())){
               //登录成功
               return user;
           }else{
               //因为密码错误，导致登录失败
               return null;
           }
       }
       //因为用户不存在，导致登录失败
       return null;
   }
//注册用户
   public boolean register(String username,String password){
       SqlSession sqlSession = factory.openSession();
       UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
       //1.先检查此用户名是否可以被注册
       User user = userMapper.selectByUsername(username);
       if (user!=null){
           //如果此条件成立，代表数据库中已有该名称用户
           return false;
       }
       //2.如果能被注册，则执行注册操作
       User newUser = new User(null, username, password);
       int i = userMapper.add(newUser);
       sqlSession.commit();
       sqlSession.close();
       return i>0;

   }

    /**
     * 检查用户名是否存在
     * @param
     * @param
     * @return
     */
    public boolean checkUsername(String username){
        SqlSession sqlSession = factory.openSession();
        UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
        //1.先检查此用户名是否可以被注册
        User user = userMapper.selectByUsername(username);
        if (user!=null){
            //如果此条件成立，代表数据库中已有该名称用户
            return true;
        }

        sqlSession.close();
        return false;

    }
}
